<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta http-equiv="X-UA-Compatible" content="ie=edge" />
    <title>Document</title>
  </head>
  <body>
    <script>
      // es5 的构造函数
      // function Car(name, color) {
      //   // 属性
      //   this.name = name
      //   this.color = color
      //   // 方法
      //   this.run = function() {}
      // }
      // Car.prototype.run = function() {}
      // var benchi = new Car('奔驰', '红色')
      //  class(类,构造函数)
      // 面向对象开发
      // 封装 继承  多态
      // 1 方法自动放置到原型
      // 2.不能提前实例化
      // 3.不能重复声明
      // 4.新增静态属性和方法  static  不需要实例化 直接类名调用
      class Car {
        constructor(name, color) {
          //所有的属性
          this.name = name
          this.color = color
        }
        // 方法
        run() {
          console.log(this.name)
        }
        jiayou() {
          console.log('加油')
        }
        // 4.静态属性和方法
        static url = 'http://www.baidu.com'

        static fly() {
          console.log('我是静态方法')
        }
      }
      Car.prototype.kai = function() {}
      var benchi = new Car('奔驰', '红色')
      console.log(benchi)
      // 静态方法和属性的调用
      console.log(Car.url)
      Car.fly()
    </script>
  </body>
</html>
